MIME-Version: 1.0
Server: CERN/3.0
Date: Sunday, 24-Nov-96 21:25:06 GMT
Content-Type: text/html
Content-Length: 26301
Last-Modified: Monday, 09-Sep-96 12:31:13 GMT

<HEAD>
<TITLE>David Gries Curriculum Vitae</TITLE>
</HEAD>
<BODY><P>
<P><PRE>
DAVID GRIES                                
William L. Lewis Professor of Engineering  Citizenship: United States
Stephen H. Weiss Presidential Fellow       Email: gries@cs.cornell.edu
Department of Computer Science             Telephone: (607) 255-9207
Upson Hall                                 Date of Birth: 1939
Cornell University                         Date: January 1996
Ithaca, New York  14853, USA               
</PRE>
<P>
    

<P><b>EDUCATION</b><BR>1960 Queens College, B.S. in
Mathematics<BR>1963 University of Illinois, M.S. in
Mathematics<BR>1966 Munich Institute of Technology, Dr. rer. nat. in
Mathematics

<P><b>EXPERIENCE</b>
<BR>1960-62 Mathematician-programmer, U.S. Naval Weapons Lab.
<BR>1963-66 Assistant, Munich Inst. of Technology
<BR>1966-69 Assistant Professor, Stanford University
<BR>1969-77 Associate Professor, Cornell University
<BR>1975-76 Sabbatic, Technical University, Munich
<BR>1977-99 Professor, Cornell University
<BR>1982-87 Chair, Computer Science Department, Cornell
<BR>1983-84 Sabbatic, Oxford University
<BR>1990-91 Sabbatic, Regents Chair in Computer Science, Univ. Texas, Austin
<BR>1992-99 William L. Lewis Professor of Engineering (endowed chair)

<P><b>PH.D. STUDENTS ADVISED</b>
<P><PRE>
1971 Susan L. Graham    1977 Kuo-Chung Tai     1987 Jennifer Widom
1972 Jean-Pierre Levy   1980 Gary M. Levin     1987 Jan Prins
1972 John S. Brown      1980 John Holm         1991 Geoffrey Smith
1973 Donald B. Johnson  1981 Robert Melville   1994 T.V. Raman
1975 Narain Gehani      1984 Peter Vanderbilt  1994 S. Efremidis
1975 Susan S. Owicki    1985 Dean Jacobs
1977 Juan M. Lafuente   1985 Van Long Nguyen
</PRE>

<P><b>AWARDS</b>
<UL>
  <LI>Doctor of Laws (Honorary Degree), Daniel Webster College, Nashua, New Hampshire
         (11 May 1996).<BR><BR>

  <LI>1995 ACM Karl V. Karlstrom Outstanding Educator Award.
       (17 Feb. 1996).<BR><BR>

  <LI>1994 Taylor L. Booth Award
       Education Award, IEEE Computer Society (7 Dec. 1995).<BR><BR>

    <LI>Advisor of T.V. Raman, whose Ph.D. thesis won the annual ACM
       Best Dissertation Award (March 1995).<BR><BR>

  <LI>ACM-SIGCSE Award for Outstanding Contributions
       to Computer Science Education, 1991.<BR><BR>

   <LI>Education Award, American Federation of Information Processing
        Societies, 1986.<BR><BR>

  <LI>Computing Research Association Award for
       Service to the Computing Community, 1991.<BR><BR>

  <LI>ACM Fellow (Charter member: among the first group to be inducted),
       8 March 1994.<BR><BR>

  <LI>Fellow of the AAAS, 1990-.<BR><BR>

   <LI>Guggenheim Fellowship, 1983-84.<BR><BR>

   <LI>ACM Programming Systems and Languages Paper Award 1977 (with S. Owicki).<BR><BR>
</UL>
</P>

<P><b>AWARDS AT CORNELL</b>
<UL>
   <LI>Weiss Presidential Fellow (for contributions to undergraduate education).
       Cornell University, 1995.<BR><BR>

   <LI>Computer Science Department Faculty of the Year, 1995-96
    (Cornell Association for Computer Association
    of Undergraduates (ACSU)).<BR><BR>

  <LI>Clarke Award for Excellence in Undergraduate Teaching; College of Arts and 
       Science, Cornell University, 1986-87.<BR><BR>

  <LI>Chosen by a Cornell Merrill Presidential Scholar (Thomas Yan) as the faculty
       member who had the most positive influence on his education at Cornell, 1990.<BR><BR>

 </UL>
</P>

<P>
<b>COMMUNITY PARTICIPATION AND LEADERSHIP (SELECTED)</b>
<UL><LI>Member, Computing Research Board, 1983-1990.
<LI>Chair, Computing Research Board, 1987-89.
<LI>Series Editor, Springer Verlag Texts and Monographs in Computer Science,
1973-.
<LI>Main Editor, <em>Acta Informatica</em>, 1982-.
<LI>Managing Editor, <em>Information Processing Letters</em>, 1988-.
<LI>Editor, Programming Languages section of <em>CACM</em>, 1969-72.
<LI>Editorial Board: Acta Informatica, 1970-;
Information Processing Letters, 1973-;
Springer Verlag Lecture Notes in Computer Science, 1973-;
Distributed Computing 1985-88;
Software -Concepts and Tools, 1988-;
Formal Aspects of Computer Science, 1988-.
<LI>Advisory Board, Conference on Foundations of Software Technology and
Theoretical Computer Science (India), 1981-.
<LI>Chair, Program Committee, 2nd IEEE Symp. Logics in Computer Science, 1987.
<LI>Member of Program Committees: 5th Int. Symp. Programming. 1981;
6th Int. Symp. Programming. 1982;
POPL 1978; POPL 79;
6th Int. Conf. Software Engineering, 1982;
IFIP Working Conference on Programming
Concepts and Methods, 1990.
<LI>National Research Council to Survey International
Developments in Computer Science. 1980-82.
<LI>Computer Science Screening Committee, Council for International
Exchange of Scholars, 1984-86.
<LI>Chair, Panel on research directions in Software. NSF Advisory
Committee Meeting, Dec. 1988.
<LI>Scientific Director, Institute for Encapsulation, Modularization
and Reuseability, Year of Programming, University of Texas at Austin, 1987.
<LI>Member, Committee to Assess the Scope and Direction of
Computer Science and Technology (Computer Science and
Telecommunications Board of the National Research Council), 1990-92.
<LI>ACM Task Force on Computer Science Core Curriculum, 1987-89.
<LI>ACM Strategic Planning Committee, 1988-90.
<LI>Scientific Director, Institute for Encapsulation, Modularization
and Reuseability, Year of Programming, University of Texas at Austin, 1987.
<LI>Chair, ACM Award Committee, Best Paper in Programming Languages and Systems 1972-75.
<LI>National ACM Lecturer, 1970-71.
<LI>Member, Selection committee for NAS Graduate fellowships, 1971-72.
<LI>Member, IFIP Working Group 2.3, 1974-.
<LI>Reviewer for the PROCOS research project, the ESPRIT program, 1990.
<LI>Review Committee, numerous computer science departments.
 </UL>
<P>
<P><b>PATENTS</b>
<UL><LI>Method for generating audio renderings of
         digitized works having highly technical contents.
         Patent applied for, Docket No. D-1466
         (with T.V. Raman).
 </UL>
<P>
<P><b>PUBLICATIONS</b><BR><A NAME = "GriesTexts"><b>Books</b></A>
<UL><LI><em>A Logical Approach to Discrete Math</em>. Springer Verlag, NY, 1993,
   500 pages (with F.B. Schneider).
<LI><em>Instructor's Manual for ``A Logical Approach to Discrete Math''</em>.
    D. Gries and F.B. Schneider, Ithaca, 1993. 311 pages
    (with F.B. Schneider).
<LI><em>Beauty is our Business</em>.
   Editor.  Springer Verlag, New York, 1990, 453 pages.
   (with W.H.J. Feijen, A.J.M. van Gasteren, and J. Misra).
<LI><em>The Science of Programming</em>.  Springer Verlag, New York, 1981,
   350 pages. (Translated into Russian and Japanese.)
<LI><em>Programming Methodology: a Collection of Articles by Members of IFIP
   WG2.3</em>. Editor.  Springer Verlag, New York, 1979, 437 pages.
<LI><em>An Introduction to Programming  -a structured approach.</em> Winthrop,
Cambridge, Edition 3, 1978, 509 pages. (with R. Conway).
<LI>The following books are extensive revisions to suit different needs:
<OL><LI><em>A Primer on Structured Programming, Using PL/I, PL/C and PL/C7.</em>  1976,
397 pages. (with R. Conway).
<LI><em>Primer on Structured Programming using Pascal.</em>  1976, 433 pages.
(with R. Conway and E.C. Zimmerman).
<LI><em>An Introduction to Structured Programming using SP/K.</em>  1977.
(with R. Conway and D. Wortman).
<LI><em>Introduction to Microprocessor Programming using PL/Z.</em>  1979, 593 pages.
(with R. Conway, M. Fay, and C. Bass).
</OL>
<LI>
<em>Compiler Construction for Digital Computers</em>.  John Wiley and Sons,
New York, 1971, 491 pages.  (Translated into Spanish, Japanese, Chinese,
Italian and Russian.)
 </UL> 
<P><b>Published Articles and Lectures</b>
<UL><li><a href="Papers/webster1.htm">What's education for?</a>
    Address at the Opening Convocation,
    Daniel Webster College, 6 September 1996.

<LI>The need for education in useful formal logic.
    <em>IEEE Computer</em> (April 1966), 29-30.
<LI>Avoiding the undefined by underspecification.
   In J. van Leeuwen (Ed.). <em>Computer Science Today</em>.
   Springer Verlag Lecture Notes in Computer Science 1000,
   October 1995, 366-373. (with Fred B. Schneider).
<LI>Teaching math more effectively through calculational proofs.
   <em>The Mathematical Monthly</em> (October 1995), 691-697.
    (with F.B. Schneider).
<LI>A new approach to teaching discrete mathematics.
       <em>PRIMUS V</em>, 2 (June 1995), 114-115. (with F.B. Schneider).
<LI><A HREF = "http://cs-tr.cs.cornell.edu/TR/CORNELLCS:TR94-1455?abstract=">
           Equational propositional logic</A>.
      <em>IPL 53</em>, 3 (February 1995), 145-152. (with Fred B. Schneider).
<LI>Documents mean more than just paper!
     <em>Proc. Second International Workshop on the
          Principles of Document Processing</em>, April 1994
     (with T.V. Raman).
<LI>Data refinement and the transform. In Broy (ed.), <em>Program Design Calculi</em>.
      NATO ASI Series F, 118, Springer-Verlag, Heidelberg, 1993. pp. 92-119.
<LI>Computer Science, Academic. Encyclopedia of Computer Science, Third Edition
      (A. Ralston and E.D. Reilly, eds.), Van Nostrand Reinhold,
      New York, 1993, p. 322-323 (with D. Marsh).
<LI>Loop invariant. Encyclopedia of Computer Science, Third Edition
      (A. Ralston and E.D. Reilly, eds.), Van Nostrand Reinhold,
      New York, 1993, p. 796-797.
<LI>Trace-based network proof systems: expressiveness and completeness.
      <em>TOPLAS 14</em>, 3 (July 1992), 396-416.
      (with J. Widom and F.B. Schneider).
<LI>A new programming language.
      <em>Proc. Software Technology Conference 1992</em>,
      Los Angeles, California, 27-29 April 1992, pp. 97-101.
<LI>A constructive proof of Vizing's theorem.
      <em>IPL 41</em>, 3 (March 1992), 131-133. (with J. Misra).
<LI>On progress in programming. In Broy, M. (ed.). <em>Informatik und Mathematik</em>,
      Springer Verlag, Heidelberg, 1991, pp. 297-302.
<LI>Teaching calculation and discrimination: a more effective
      curriculum.  <em>Comm. ACM 34</em>, 3 (March 1991), 44-55.
<LI>Binary to decimal, one more time.
      In <em>Beauty is our Business</em> (W.H.J. Feijen et al, eds.),
      Springer Verlag, New York, 1990, pp. 141-148.
<LI>The transform -a new language construct.
      <em>Structured Programming 11</em> (1990), 1-10.
      (with D. Volpano).
<LI>An optimal parallel algorithm for generating combinations.
      IPL 33 (November 1989), 135-139. (with S.E. Akl and I. Stojmenovic).
<LI>Influences (or lack thereof) of formalism in teaching
      programming and software engineering.  (Banquet speech.) <em>Ibid</em>, pp. 229-236.
<LI>A hands-in-the-pocket presentation of a k-majority vote algorithm.
      In <em>Formal development of programs and proofs</em> (E.W. Dijkstra, ed.),
      Addison-Wesley, Menlo Park, 1990, pp. 43-45.
<LI>Inorder traversal of a binary tree and its inversion.
      <em>Ibid</em>,  pp. 37-42.  (with J.L.A. van de Snepscheut).
<LI>The maximum-segment-sum problem.
      <em>Ibid</em>, pp. 33-36.
<LI>An algorithm for transitive reduction of an acyclic graph.
      <em>Science of Computer Programming 12</em>, 2 (July 1989), 151-155.
      (with A.J. Martin, J.L.A. van de Snepscheut, and J.T. Udding).
<LI>Developing a linear algorithm for cubing a cyclic permutation.
      <em>Science of Computer Programming 11</em>, 2 (December 1988), 161-166.
      (with J. Xue).
<LI>Generating a random cyclic permutation.
      <em>BIT 28</em>, 3 (1988), 569-572.  (with J. Xue).
<LI>A note on Graham's convex hull algorithm.
      <em>IPL 25</em>, 5 (July 1987), 323-328. (with I. Stojmenovic).
<LI>Horner's rule and the computation of linear recurrences.
      <em>IPL 25</em>, 4 (June 1987), 237-240. (with A. Pascoletti and L. Sbriz).
<LI>Programming pearls, guest oyster.
      <em>Comm. ACM 30</em>, 4 (April 1987), 284-290.
<LI>Mclaren's masterpiece.
      <em>Science of Computer Programming 8</em>, 2 (April 1987), 139-146.
      (with J.F. Prins).
<LI>In-situ inversion of a cyclic permutation.
      <em>IPL 24</em>, 1 (January 1987), 11-14.
      (with W.H.J. Feijen and A.J.M. van Gasteren).
<LI>Completeness and incompleteness of trace-based network proof systems.
      <em>Proc. Fourteenth Ann. ACM SIGACT-SIGPLAN Symp. Princ. Programming
      Languages</em>, January 1987, Munich.
      (with J. Widom and F.B. Schneider).
<LI>Programming methodology: making a science out of an art.
      <em>Engineering: Cornell Quarterly 20</em>, 2 (Fall 1985), 23-27.
      (with F.B. Schneider).
<LI>A model and temporal proof system for networks of processes.
      <em>Distributed Computing 1</em>, 1 (1986), 7-25. (with V. Nguyen,
      A. Demers, and S. Owicki).
<LI>A new notion of encapsulation.
      <em>Proc. SIGPLAN 85 Symp. Language Issues in Programming Environments</em>,
      Seattle, June 1985, 131-139. (with J. Prins).
<LI>Behavior: a temporal approach to process modeling.
      Conference on Logics of Programs, Brooklyn, June 1985.
      <em>LNCS 193</em> (1985), 237-254. (with V. Nguyen, A. Demers, and S. Owicki).
<LI>A model and temporal proof system for networks of processes.
      <em>Twelfth Ann. ACM Symp. Princ. Progr. Lang.</em>, New Orleans, January 1985,
      121-131. (with V. Nguyen and S. Owicki).
<LI>General correctness: a unification of partial and total correctness.
      <em>Acta Informatica 22</em> (1985), 67-84. (with D. Jacobs).
<LI>The emerging science of programming (Keynote Address).
      <em>6th Australian Computer Science Conference</em>, Sydney, Australia,
      February 12, 1983.
<LI>Towards a practical science of programming (Keynote Address).
      <em>2nd Conf. Foundations of Software Technology and Theoretical
      Computer Science</em>, Bangalore, India, December 13, 1982.
<LI>Fast fault-tolerant broadcasts.
      <em>Science of Computer Programming 4</em> (April 1984), 1-16.
      (with F.B. Schneider and R.D. Schlichting).
<LI>A note on a standard strategy for developing loop invariants and loops.
      <em>Science of Computer Programming 2</em> (1984), 207-214.
<LI>Finding repeated elements.
      <em>Science of Computer Programming 2</em> (November 1982), 143-152.
      (with J. Misra).
<LI>A proof technique for communicating sequential processes.  <em>Acta
      Informatica 15</em> (1980), 281-302. (with G. Levin).
<LI>Educating the programmer: notation, proofs and the development of programs.
      Invited lecture.  <em>Information Processing 80, Proc. IFIP Congress 80,</em>
      S. Lavington, (Ed.), North-Holland, New York, 1980, 935-944.
<LI>Computing a Fibonacci number in log time.
      <em>IPL 2</em> (October 1980), 68-69. (with G. Levin).
<LI>Assignment and procedure call proof rules.  <em>TOPLAS 2</em> (October 1980),
      564-579. (with G. Levin).
<LI>Controlled-density sorting.
      <em>IPL 10</em> (July 1980), 169-172. (with R. Melville).
<LI>Is sometime ever better than alway?  <em>TOPLAS 1</em> (October 1979), 258-265.
<LI>Eliminating the chaff.  In <em>Program Construction</em>, F.L. Bauer and M. Broy
      (Eds.), <em>LNCS 69</em> (1979), 70-74.
<LI>Current ideas in programming methodology.  In <em>Research Directions in
      Software Technology</em>, P. Wegner (Ed.), MIT Press, 1979, 254-275.
<LI>The Schorr-Waite graph marking algorithm.  <em>Acta Informatica 11</em> (1979),
      223-232.
<LI>A linear sieve algorithm for finding prime numbers.
      <em>Comm. ACM 21</em> (December 1978), 999-1003. (with J. Misra).
<LI>Parallel programming (invited lecture).  GI-8 Jahrestagung,
      <em>Springer Verlag Informatik Berichte 16</em> (October 1976)
      Berlin, Germany, 214-233.
<LI>The multiple assignment statement.
      <em>IEEE Trans. Softw. Eng. 4</em> (March 1978), 89-93.
<LI>Language facilities for programming user-computer dialogues.
      <em>IBM J. Research and Development 22</em> (March 1978), 148-158.
      Reprinted in E. Edmunds (ed.). <em>The Separable User Interface.</em>
      Academic Press, San Diego, 1992, pp. 97-128. (with J. LaFuente).
<LI>An exercise in proving parallel programs correct.
      <em>Comm. ACM 20</em> (December 1977), 921-930.
<LI>Some ideas on data types in high-level languages.
      <em>Comm. ACM 20</em> (June 1977), 414-420. (with N. Gehani).
<LI>An illustration of current ideas on the derivation of correctness proofs and
      correct programs.  <em>IEEE Trans. Softw. Eng. 2</em>
      (December 1976), 238-244.
<LI>Compiler.  <em>Encyclopedia of Computer Science and Technology 5</em>,
      Belzer, Holzman and Kent (Eds.), Markel Dekker Inc., New York, 206-243.
<LI>Error recovery and correction -an introduction to the literature.
      <em>Compiler Construction -an Advanced Course</em>, F.L. Bauer and J. Eickel
      (Eds.), <em>LNCS 21</em> (edition 2), Springer Verlag, New York, 1976, 627-638.
<LI>Some comments on programming language design (invited lecture).
      <em>Programmiersprachen: Fachtagung 1976</em>, H.J. Schneider and M. Nagl
      (Eds.), Informatik-Fachberichte I, Springer Verlag, Heidelberg, 1976, 235-252.
<LI>An axiomatic proof technique for parallel programs.  <em>Acta Informatica 6</em>
      (1976), 319-340. (with S. Owicki).
<LI>Verifying properties of parallel programs: an axiomatic approach.
      <em>Comm. ACM 19</em> (May 1976), 279-285. (with S. Owicki).
<LI>On structured programming -a reply to Smoliar.  <em>Comm. ACM 17</em>
      (November 1974), 655-657; also <em>Comm. ACM 18</em> (October 1975),
      600-601 and <em>Comm. ACM 19</em> (January 1976), 47-48.
<LI>What should we teach in an introductory programming course?  SIGCSE Bulletin 6,
      February 1974, 81-89.  (<em>Proc. 4th Symp. Computer Science Education.</em>)
<LI>Describing an algorithm by Hopcroft.  <em>Acta Informatica 2</em> (1973), 97-109.
<LI>Programming by induction.  <em>IPL 2</em> (1972), 100-107.
<LI>Program schemes with pushdown stores.  <em>SIAM J. Computing 1</em> (1972),
      242-268. (with R. Szymanski and S. Brown).
<LI>On classes of program schemata.  <em>SIAM J. Computing 1</em>, 1 (1972),
      66-118. (with R. Constable).
<LI>Automatic compiler writing techniques.  In <em>Systemprogrammierung</em>, 
      Ganzhorn, Schieferdecker, Endres (Ed.), Oldenbourg Verlag, Munich, 1972.
<LI>Translator writing systems.  <em>Comm. ACM 11</em>
      (February 1968), 77-113. (with J. Feldman).
<LI>The use of transition matrices in compiling.  <em>Comm. ACM 11</em>
      (January 1968), 26-34.
<LI>The ALCOR-ILLINOIS 7090/7040 post mortem dump.
      <em>Comm. ACM 10</em> (December 1967), 804-808.
      (with R. Bayer, M. Paul and H.R. Wiehle).
<LI>Characterizations of certain classes of norms.  <em>Numerische Mathematik 10</em> 
      (1967), 30-41.
<LI>Some results on fields of value of a matrix.  <em>SIAM J. Numerical 
      Analysis 4</em> (1967), 283-299. (with J. Stoer).
<LI>Some techniques used in the ALCOR-ILLINOIS 7090.
      <em>Comm. ACM 8</em> (August 1965), 496-500. (with M. Paul and H.R. Wiehle).
 </UL> 
<P><b>Published Reports</b>
<UL><LI>Computer science.
      <em>Cornell Engineering Quarterly 25</em>, 4 (Summer 1991), 21-23.
<LI>Die 150 wissenschaftlichen Nachtkommen von Prof.Dr.Dr.h.c.mult. F.L. Bauer.
      In Broy, M. (ed.). <em>Informatik und Mathematik</em>,
      Springer Verlag, Heidelberg, 1991, pp. 441-450.
<LI>The 1989-90 Taulbee survey.  <em>Computing Research News</em>
      (January 1991) and <em>Comm. ACM 35</em>, 1 (January 1992), 132-143.
      (with Dorothy Marsh).
<LI>The 1988-89 Taulbee survey.
      <em>Computing Research News 2</em>, 1 (January 1990) and
      <em>Comm. ACM 33</em>, 9 (September 1990),
      160-169.  (with Dorothy Marsh).
<LI>Computer languages.  In J.E. Hopcroft and K.W. Kennedy, ed.
      <em>Computer Science: achievements and opportunities</em>.
      Report of the NSF Advisory Committee for Computer
      Research.  SIAM, Philadelphia, 1989, pp. 15-28.  (with C.A.R. Hoare,
      K.W. Kennedy, F.C.N. Pereira, and D.S. Scott).
<LI>The Computer Worm.  (Report from the Commission of Preliminary Enquiry.
      Cornell University), Cornell University, 6 February 1989.  (with T. Eisenberg,
      J. Hartmanis, D. Holcomb, M.S. Lynn, and T. Santoro).
<LI>The 1988 Snowbird Report: a discipline matures.
      <em>Computer 22</em>, 2 (1989), 72-75.  (with T. Walker and P.R. Young).
<LI>Computing as a Discipline. Final report of ACM Task Force on the Core of
      Computer Science.
      <em>Computer 22</em>, 2 (1989), 63-70.  (with P.J. Denning,. D.E. Comer,
      M.C. Mulder, A. Tucker, A.J. Turner, and P.R. Young).
<LI>The 1987-88 Taulbee survey.  <em>Comm. ACM 32</em>, 10 (October 1989), 1217-1224;
      and <em>Computer 22</em>, 11 (November 1989),
      49-56. (with D. Marsh).
<LI>The 1986-87 Taulbee survey.  <em>Comm. ACM 31</em> (August 1988), 984-991;
      and <em>Computer 21</em> (August 1988), 53-61.  (with Dorothy Marsh).
<LI>The 1985-86 Taulbee survey.  <em>Comm. ACM 30</em> (August 1987), 688-694.
<LI>Meeting the basic research needs of computer science.  Report of
      the study group of the Advisory Committee for Computer Research,
      National science Foundation, December 1986. (with S.R. Kosaraju and
      M.J. Fischer).
<LI>The 1984-85 Taulbee survey.  <em>Comm. ACM 29</em> (Oct 1986), 972-977.
<LI>Twenty years of computer science at Cornell.
      <em>Engineering: Cornell Quarterly 20</em>, 2 (Fall 1985), 2-12.
<LI>Imbalance between growth and funding in academic
      computer science: two trends colliding.
      <em>Computer 19</em> (September 1986), 70-76, and
      <em>Comm. ACM 29</em> (September 1986), 870-878.
      (with R. Miller, R. Ritchie, and P. Young).
 </UL> 
<P><b>Other reports and reviews</b>
<UL>
<LI><A HREF = "Papers/Monotonicity.ps">On presenting monotonicity and on EA=>AE</A>.
     Tech. Rpt. TR95-1512, Computer Science Department, Cornell University,
      May 1995.
<LI>Teaching math more effectively through the design of calculational proofs.
      Tech. Rpt. 94-1415, March 1994. 
      Accepted for publication in the <em>Mathematical Monthly</em>, January 1995. 
<LI>A new approach to teaching mathematics.
      Tech. Rpt., Computer Science Department, Cornell University,
      February 1994.
      Accepted for publication in <em>PRIMUS</em>. (with F.B. Schneider).
<LI>A constructive proof of Vizing's theorem.
      Tech. Rpt., Computer Science Department, Cornell University, August 1991.
      (with J. Misra).
<LI>Forward, <em>Essays in Computing Science</em> by C.A.R. Hoare and C.B. Jones.
      Prentice Hall International, London, 1989.
<LI>The Hopcroft-Tarjan planarity algorithm, presentation and improvements.
      Tech. Rpt. 88-906, April 1988. (with J. Xue).
<LI>Presenting an algorithm to find the minimum edit distance.
      Tech. Rpt. 88-903, March 1988. (with B. Burkhart).
<LI>Inorder traversal of a binary tree and its inversion.
      Tech. Rpt. 87-876, November 1987.
      (with Jan L.A. van de Snepscheut).
<LI>Complete, trace-based, network proof systems: an advisor's perspective.
      Tech. Rpt. 87-865, Computer Science Department, Cornell University,
      September 1987.
<LI>Developing two of Arsac's funny algorithms.
      Tech. Rep. 85-711, Computer Science Department, Cornell University,
      November 1985.
<LI>The Gibbs Programming Environment.   IEEE International Conference
      on Computer Design: VLSI in Computers.  (ICCD '85), Oct 7 1985,
      Port Chester, NY.
<LI>The seven-eleven problem.
      Tech. Rep. 83-574, Computer Science, Cornell University, September 1983.
      (with P. Pritchard)
<LI>Review of R.G. Dromy's book <em>How to solve it by computer</em>.
      <em>Science of Computer Programming 3</em> (1983).
<LI>A reply to Susan Gerhart's review of <em>Craft</em> and <em>Science</em>.
      May 1982.
<LI>The science of programming answer book.
      Tech. Rep. 82-498, Computer Science, Cornell University,
      Ithaca, New York, June 1982.
<LI>The 711 problem.
      Tech. Rep. 82-493, Computer Science, Cornell University,
      Ithaca, New York, May 1982. (with J. Misra).
<LI>Finding the longest prefix. August 1981.
<LI>Notes on Mathematical Induction and Well-Founded Sets.
      November 1981.
<LI><b>Cand</b> and <b>Cor</b> before <b>and then</b> and <b>or else</b> in ADA;.
      Tech. Rep. 79-402, Computer Science,
      Cornell University, Ithaca, New York, May 1979.
<LI>Yet another exercise: using shared variables in two processes to provide
      starvation-free mutual exclusion.
      Tech. Rep. 79-372, Computer Science, Cornell University,
      Ithaca, New York, 1979.
<LI>Tutorial on the development of programs.  COMCON 77, September 1977. (with D.
      Parnas).
<LI>A note on iteration.
      Tech. Rep. 77-323, Computer Science, Cornell University,
      Ithaca, New York, September 1977.
<LI>A proof of correctness of Rem's semaphore implementation of the <em>with-when</em>
      statement.
      Tech. Rep. 77-314, Computer Science, Cornell University,
      Ithaca, New York, May 1977.
<LI>The use of comments on programming.  1976. (with R. Conway).
<LI>A student-written compiler.  Tutorial Software Document 1, DISE Task Force
      on Software Engineering, May 1975.
<LI>Recursion as a programming tool.
      Tech. Rep. 75-242, Computer Science, Cornell University,
      Ithaca, New York, May 1975.
<LI>A note on program development.  Tech. Rep. 74-202, Computer Science,
      Cornell University, Ithaca, New York, March 1974.
<LI>Using recipes to teach programming.  1970.
<LI>CIL: Compiler Implementation Language.
      SLAC Report 102, March 1969.
<LI>MPL: Mathematical Programming Language.  Computer Science Report, Computer
      Science Department, Stanford University, 1968. (with 7 others).
<LI><em>Ueber einige Klassen von Normen.</em>  Ph.D. Thesis, Technische Hochschule
      Muenchen, 1966.
<LI>ALCOR-ILLINOIS 7090 -an ALGOL compiler for the IBM 7090.  Report 6415,
      Rech. der Tech. Hochschule Munich, 1964. (with M. Paul and H.R. Wiehle).
<LI>The object program produced by the ALCOR-ILLINOIS 7090 compiler.  Report
      6412, Rech. der Tech. Hochschule Munich, 1964.
<LI>User's manual for the ALCOR-ILLINOIS 7090 ALGOL translator.  University of
      Illinois, September 1964, 120 pages. (with R. Bayer and E. Murphree Jr).
 </UL> 
<HR>

</BODY>
